`ifndef RAL_PPU_REG
`define RAL_PPU_REG

import uvm_pkg::*;

class ral_reg_PPU_REG_ppu_reg_PORT_SEL extends uvm_reg;
	rand uvm_reg_field port_sel;

	function new(string name = "PPU_REG_ppu_reg_PORT_SEL");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.port_sel = uvm_reg_field::type_id::create("port_sel",,get_full_name());
      this.port_sel.configure(this, 1, 0, "RW", 0, 1'h0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_PORT_SEL)

endclass : ral_reg_PPU_REG_ppu_reg_PORT_SEL


class ral_reg_PPU_REG_ppu_reg_MODE_SEL extends uvm_reg;
	rand uvm_reg_field mode_sel;

	function new(string name = "PPU_REG_ppu_reg_MODE_SEL");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.mode_sel = uvm_reg_field::type_id::create("mode_sel",,get_full_name());
      this.mode_sel.configure(this, 8, 0, "RW", 0, 8'haa, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_MODE_SEL)

endclass : ral_reg_PPU_REG_ppu_reg_MODE_SEL


class ral_reg_PPU_REG_ppu_reg_SPT_HEAD_ERR_CNT extends uvm_reg;
	rand uvm_reg_field head_err_cnt;

	function new(string name = "PPU_REG_ppu_reg_SPT_HEAD_ERR_CNT");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.head_err_cnt = uvm_reg_field::type_id::create("head_err_cnt",,get_full_name());
      this.head_err_cnt.configure(this, 32, 0, "RC", 0, 32'h0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_SPT_HEAD_ERR_CNT)

endclass : ral_reg_PPU_REG_ppu_reg_SPT_HEAD_ERR_CNT


class ral_reg_PPU_REG_ppu_reg_SPT_TAIL_ERR_CNT extends uvm_reg;
	rand uvm_reg_field tail_err_cnt;

	function new(string name = "PPU_REG_ppu_reg_SPT_TAIL_ERR_CNT");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.tail_err_cnt = uvm_reg_field::type_id::create("tail_err_cnt",,get_full_name());
      this.tail_err_cnt.configure(this, 32, 0, "RC", 0, 32'h0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_SPT_TAIL_ERR_CNT)

endclass : ral_reg_PPU_REG_ppu_reg_SPT_TAIL_ERR_CNT


class ral_reg_PPU_REG_ppu_reg_SPT_SHT_PKT_CNT extends uvm_reg;
	rand uvm_reg_field short_pkt_cnt;

	function new(string name = "PPU_REG_ppu_reg_SPT_SHT_PKT_CNT");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.short_pkt_cnt = uvm_reg_field::type_id::create("short_pkt_cnt",,get_full_name());
      this.short_pkt_cnt.configure(this, 32, 0, "RC", 0, 32'h0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_SPT_SHT_PKT_CNT)

endclass : ral_reg_PPU_REG_ppu_reg_SPT_SHT_PKT_CNT


class ral_reg_PPU_REG_ppu_reg_SPT_LNG_PKT_CNT extends uvm_reg;
	rand uvm_reg_field long_pkt_cnt;

	function new(string name = "PPU_REG_ppu_reg_SPT_LNG_PKT_CNT");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.long_pkt_cnt = uvm_reg_field::type_id::create("long_pkt_cnt",,get_full_name());
      this.long_pkt_cnt.configure(this, 32, 0, "RC", 0, 32'h0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_SPT_LNG_PKT_CNT)

endclass : ral_reg_PPU_REG_ppu_reg_SPT_LNG_PKT_CNT


class ral_reg_PPU_REG_ppu_reg_SPT_OK_PKT_CNT extends uvm_reg;
	rand uvm_reg_field ok_pkt_cnt;

	function new(string name = "PPU_REG_ppu_reg_SPT_OK_PKT_CNT");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.ok_pkt_cnt = uvm_reg_field::type_id::create("ok_pkt_cnt",,get_full_name());
      this.ok_pkt_cnt.configure(this, 32, 0, "RC", 0, 32'h0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_SPT_OK_PKT_CNT)

endclass : ral_reg_PPU_REG_ppu_reg_SPT_OK_PKT_CNT


class ral_reg_PPU_REG_ppu_reg_TEST_DATA0 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA0");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'h0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA0)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA0


class ral_reg_PPU_REG_ppu_reg_TEST_DATA1 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA1");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'hff, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA1)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA1


class ral_reg_PPU_REG_ppu_reg_TEST_DATA2 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA2");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'hf, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA2)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA2


class ral_reg_PPU_REG_ppu_reg_TEST_DATA3 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA3");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'hf0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA3)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA3


class ral_reg_PPU_REG_ppu_reg_TEST_DATA4 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA4");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'h55, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA4)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA4


class ral_reg_PPU_REG_ppu_reg_TEST_DATA5 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA5");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'haa, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA5)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA5


class ral_reg_PPU_REG_ppu_reg_TEST_DATA6 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA6");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'h5a, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA6)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA6


class ral_reg_PPU_REG_ppu_reg_TEST_DATA7 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA7");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'ha5, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA7)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA7


class ral_reg_PPU_REG_ppu_reg_TEST_DATA8 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA8");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'ha, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA8)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA8


class ral_reg_PPU_REG_ppu_reg_TEST_DATA9 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA9");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'ha0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA9)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA9


class ral_reg_PPU_REG_ppu_reg_TEST_DATA10 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA10");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'h5, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA10)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA10


class ral_reg_PPU_REG_ppu_reg_TEST_DATA11 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA11");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'h50, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA11)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA11


class ral_reg_PPU_REG_ppu_reg_TEST_DATA12 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA12");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'haf, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA12)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA12


class ral_reg_PPU_REG_ppu_reg_TEST_DATA13 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA13");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'hf5, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA13)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA13


class ral_reg_PPU_REG_ppu_reg_TEST_DATA14 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA14");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'hfa, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA14)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA14


class ral_reg_PPU_REG_ppu_reg_TEST_DATA15 extends uvm_reg;
	rand uvm_reg_field data;

	function new(string name = "PPU_REG_ppu_reg_TEST_DATA15");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data = uvm_reg_field::type_id::create("data",,get_full_name());
      this.data.configure(this, 24, 0, "RW", 0, 24'h0, 1, 0, 1);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_DATA15)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_DATA15


class ral_reg_PPU_REG_ppu_reg_TEST_STATUS extends uvm_reg;
	uvm_reg_field status_a;
	uvm_reg_field status_b;

	function new(string name = "PPU_REG_ppu_reg_TEST_STATUS");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.status_a = uvm_reg_field::type_id::create("status_a",,get_full_name());
      this.status_a.configure(this, 2, 0, "RO", 0, 2'h0, 1, 0, 0);
      this.status_b = uvm_reg_field::type_id::create("status_b",,get_full_name());
      this.status_b.configure(this, 2, 2, "RO", 0, 2'h0, 1, 0, 0);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_STATUS)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_STATUS


class ral_reg_PPU_REG_ppu_reg_TEST_ALARM extends uvm_reg;
	uvm_reg_field data_err_a;
	uvm_reg_field addr_err_a;
	uvm_reg_field data_err_b;
	uvm_reg_field addr_err_b;

	function new(string name = "PPU_REG_ppu_reg_TEST_ALARM");
		super.new(name, 32,build_coverage(UVM_NO_COVERAGE));
	endfunction: new
   virtual function void build();
      this.data_err_a = uvm_reg_field::type_id::create("data_err_a",,get_full_name());
      this.data_err_a.configure(this, 1, 0, "RO", 0, 1'h0, 1, 0, 0);
      this.addr_err_a = uvm_reg_field::type_id::create("addr_err_a",,get_full_name());
      this.addr_err_a.configure(this, 1, 1, "RO", 0, 1'h0, 1, 0, 0);
      this.data_err_b = uvm_reg_field::type_id::create("data_err_b",,get_full_name());
      this.data_err_b.configure(this, 1, 2, "RO", 0, 1'h0, 1, 0, 0);
      this.addr_err_b = uvm_reg_field::type_id::create("addr_err_b",,get_full_name());
      this.addr_err_b.configure(this, 1, 3, "RO", 0, 1'h0, 1, 0, 0);
   endfunction: build

	`uvm_object_utils(ral_reg_PPU_REG_ppu_reg_TEST_ALARM)

endclass : ral_reg_PPU_REG_ppu_reg_TEST_ALARM


class ral_block_PPU_REG_ppu_reg extends uvm_reg_block;
	rand ral_reg_PPU_REG_ppu_reg_PORT_SEL PORT_SEL;
	rand ral_reg_PPU_REG_ppu_reg_MODE_SEL MODE_SEL;
	rand ral_reg_PPU_REG_ppu_reg_SPT_HEAD_ERR_CNT SPT_HEAD_ERR_CNT;
	rand ral_reg_PPU_REG_ppu_reg_SPT_TAIL_ERR_CNT SPT_TAIL_ERR_CNT;
	rand ral_reg_PPU_REG_ppu_reg_SPT_SHT_PKT_CNT SPT_SHT_PKT_CNT;
	rand ral_reg_PPU_REG_ppu_reg_SPT_LNG_PKT_CNT SPT_LNG_PKT_CNT;
	rand ral_reg_PPU_REG_ppu_reg_SPT_OK_PKT_CNT SPT_OK_PKT_CNT;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA0 TEST_DATA0;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA1 TEST_DATA1;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA2 TEST_DATA2;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA3 TEST_DATA3;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA4 TEST_DATA4;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA5 TEST_DATA5;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA6 TEST_DATA6;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA7 TEST_DATA7;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA8 TEST_DATA8;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA9 TEST_DATA9;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA10 TEST_DATA10;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA11 TEST_DATA11;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA12 TEST_DATA12;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA13 TEST_DATA13;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA14 TEST_DATA14;
	rand ral_reg_PPU_REG_ppu_reg_TEST_DATA15 TEST_DATA15;
	rand ral_reg_PPU_REG_ppu_reg_TEST_STATUS TEST_STATUS;
	rand ral_reg_PPU_REG_ppu_reg_TEST_ALARM TEST_ALARM;
	rand uvm_reg_field PORT_SEL_port_sel;
	rand uvm_reg_field port_sel;
	rand uvm_reg_field MODE_SEL_mode_sel;
	rand uvm_reg_field mode_sel;
	rand uvm_reg_field SPT_HEAD_ERR_CNT_head_err_cnt;
	rand uvm_reg_field head_err_cnt;
	rand uvm_reg_field SPT_TAIL_ERR_CNT_tail_err_cnt;
	rand uvm_reg_field tail_err_cnt;
	rand uvm_reg_field SPT_SHT_PKT_CNT_short_pkt_cnt;
	rand uvm_reg_field short_pkt_cnt;
	rand uvm_reg_field SPT_LNG_PKT_CNT_long_pkt_cnt;
	rand uvm_reg_field long_pkt_cnt;
	rand uvm_reg_field SPT_OK_PKT_CNT_ok_pkt_cnt;
	rand uvm_reg_field ok_pkt_cnt;
	rand uvm_reg_field TEST_DATA0_data;
	rand uvm_reg_field TEST_DATA1_data;
	rand uvm_reg_field TEST_DATA2_data;
	rand uvm_reg_field TEST_DATA3_data;
	rand uvm_reg_field TEST_DATA4_data;
	rand uvm_reg_field TEST_DATA5_data;
	rand uvm_reg_field TEST_DATA6_data;
	rand uvm_reg_field TEST_DATA7_data;
	rand uvm_reg_field TEST_DATA8_data;
	rand uvm_reg_field TEST_DATA9_data;
	rand uvm_reg_field TEST_DATA10_data;
	rand uvm_reg_field TEST_DATA11_data;
	rand uvm_reg_field TEST_DATA12_data;
	rand uvm_reg_field TEST_DATA13_data;
	rand uvm_reg_field TEST_DATA14_data;
	rand uvm_reg_field TEST_DATA15_data;
	uvm_reg_field TEST_STATUS_status_a;
	uvm_reg_field status_a;
	uvm_reg_field TEST_STATUS_status_b;
	uvm_reg_field status_b;
	uvm_reg_field TEST_ALARM_data_err_a;
	uvm_reg_field data_err_a;
	uvm_reg_field TEST_ALARM_addr_err_a;
	uvm_reg_field addr_err_a;
	uvm_reg_field TEST_ALARM_data_err_b;
	uvm_reg_field data_err_b;
	uvm_reg_field TEST_ALARM_addr_err_b;
	uvm_reg_field addr_err_b;

	function new(string name = "PPU_REG_ppu_reg");
		super.new(name, build_coverage(UVM_NO_COVERAGE));
	endfunction: new

   virtual function void build();
      this.default_map = create_map("", 0, 4, UVM_LITTLE_ENDIAN, 0);
      this.PORT_SEL = ral_reg_PPU_REG_ppu_reg_PORT_SEL::type_id::create("PORT_SEL",,get_full_name());
      this.PORT_SEL.configure(this, null, "");
      this.PORT_SEL.build();
      this.default_map.add_reg(this.PORT_SEL, `UVM_REG_ADDR_WIDTH'h4000, "RW", 0);
		this.PORT_SEL_port_sel = this.PORT_SEL.port_sel;
		this.port_sel = this.PORT_SEL.port_sel;
      this.MODE_SEL = ral_reg_PPU_REG_ppu_reg_MODE_SEL::type_id::create("MODE_SEL",,get_full_name());
      this.MODE_SEL.configure(this, null, "");
      this.MODE_SEL.build();
      this.default_map.add_reg(this.MODE_SEL, `UVM_REG_ADDR_WIDTH'h4004, "RW", 0);
		this.MODE_SEL_mode_sel = this.MODE_SEL.mode_sel;
		this.mode_sel = this.MODE_SEL.mode_sel;
      this.SPT_HEAD_ERR_CNT = ral_reg_PPU_REG_ppu_reg_SPT_HEAD_ERR_CNT::type_id::create("SPT_HEAD_ERR_CNT",,get_full_name());
      this.SPT_HEAD_ERR_CNT.configure(this, null, "");
      this.SPT_HEAD_ERR_CNT.build();
      this.default_map.add_reg(this.SPT_HEAD_ERR_CNT, `UVM_REG_ADDR_WIDTH'h4100, "RW", 0);
		this.SPT_HEAD_ERR_CNT_head_err_cnt = this.SPT_HEAD_ERR_CNT.head_err_cnt;
		this.head_err_cnt = this.SPT_HEAD_ERR_CNT.head_err_cnt;
      this.SPT_TAIL_ERR_CNT = ral_reg_PPU_REG_ppu_reg_SPT_TAIL_ERR_CNT::type_id::create("SPT_TAIL_ERR_CNT",,get_full_name());
      this.SPT_TAIL_ERR_CNT.configure(this, null, "");
      this.SPT_TAIL_ERR_CNT.build();
      this.default_map.add_reg(this.SPT_TAIL_ERR_CNT, `UVM_REG_ADDR_WIDTH'h4104, "RW", 0);
		this.SPT_TAIL_ERR_CNT_tail_err_cnt = this.SPT_TAIL_ERR_CNT.tail_err_cnt;
		this.tail_err_cnt = this.SPT_TAIL_ERR_CNT.tail_err_cnt;
      this.SPT_SHT_PKT_CNT = ral_reg_PPU_REG_ppu_reg_SPT_SHT_PKT_CNT::type_id::create("SPT_SHT_PKT_CNT",,get_full_name());
      this.SPT_SHT_PKT_CNT.configure(this, null, "");
      this.SPT_SHT_PKT_CNT.build();
      this.default_map.add_reg(this.SPT_SHT_PKT_CNT, `UVM_REG_ADDR_WIDTH'h4108, "RW", 0);
		this.SPT_SHT_PKT_CNT_short_pkt_cnt = this.SPT_SHT_PKT_CNT.short_pkt_cnt;
		this.short_pkt_cnt = this.SPT_SHT_PKT_CNT.short_pkt_cnt;
      this.SPT_LNG_PKT_CNT = ral_reg_PPU_REG_ppu_reg_SPT_LNG_PKT_CNT::type_id::create("SPT_LNG_PKT_CNT",,get_full_name());
      this.SPT_LNG_PKT_CNT.configure(this, null, "");
      this.SPT_LNG_PKT_CNT.build();
      this.default_map.add_reg(this.SPT_LNG_PKT_CNT, `UVM_REG_ADDR_WIDTH'h410C, "RW", 0);
		this.SPT_LNG_PKT_CNT_long_pkt_cnt = this.SPT_LNG_PKT_CNT.long_pkt_cnt;
		this.long_pkt_cnt = this.SPT_LNG_PKT_CNT.long_pkt_cnt;
      this.SPT_OK_PKT_CNT = ral_reg_PPU_REG_ppu_reg_SPT_OK_PKT_CNT::type_id::create("SPT_OK_PKT_CNT",,get_full_name());
      this.SPT_OK_PKT_CNT.configure(this, null, "");
      this.SPT_OK_PKT_CNT.build();
      this.default_map.add_reg(this.SPT_OK_PKT_CNT, `UVM_REG_ADDR_WIDTH'h4110, "RW", 0);
		this.SPT_OK_PKT_CNT_ok_pkt_cnt = this.SPT_OK_PKT_CNT.ok_pkt_cnt;
		this.ok_pkt_cnt = this.SPT_OK_PKT_CNT.ok_pkt_cnt;
      this.TEST_DATA0 = ral_reg_PPU_REG_ppu_reg_TEST_DATA0::type_id::create("TEST_DATA0",,get_full_name());
      this.TEST_DATA0.configure(this, null, "");
      this.TEST_DATA0.build();
      this.default_map.add_reg(this.TEST_DATA0, `UVM_REG_ADDR_WIDTH'h8000, "RW", 0);
		this.TEST_DATA0_data = this.TEST_DATA0.data;
      this.TEST_DATA1 = ral_reg_PPU_REG_ppu_reg_TEST_DATA1::type_id::create("TEST_DATA1",,get_full_name());
      this.TEST_DATA1.configure(this, null, "");
      this.TEST_DATA1.build();
      this.default_map.add_reg(this.TEST_DATA1, `UVM_REG_ADDR_WIDTH'h8004, "RW", 0);
		this.TEST_DATA1_data = this.TEST_DATA1.data;
      this.TEST_DATA2 = ral_reg_PPU_REG_ppu_reg_TEST_DATA2::type_id::create("TEST_DATA2",,get_full_name());
      this.TEST_DATA2.configure(this, null, "");
      this.TEST_DATA2.build();
      this.default_map.add_reg(this.TEST_DATA2, `UVM_REG_ADDR_WIDTH'h8008, "RW", 0);
		this.TEST_DATA2_data = this.TEST_DATA2.data;
      this.TEST_DATA3 = ral_reg_PPU_REG_ppu_reg_TEST_DATA3::type_id::create("TEST_DATA3",,get_full_name());
      this.TEST_DATA3.configure(this, null, "");
      this.TEST_DATA3.build();
      this.default_map.add_reg(this.TEST_DATA3, `UVM_REG_ADDR_WIDTH'h800C, "RW", 0);
		this.TEST_DATA3_data = this.TEST_DATA3.data;
      this.TEST_DATA4 = ral_reg_PPU_REG_ppu_reg_TEST_DATA4::type_id::create("TEST_DATA4",,get_full_name());
      this.TEST_DATA4.configure(this, null, "");
      this.TEST_DATA4.build();
      this.default_map.add_reg(this.TEST_DATA4, `UVM_REG_ADDR_WIDTH'h8010, "RW", 0);
		this.TEST_DATA4_data = this.TEST_DATA4.data;
      this.TEST_DATA5 = ral_reg_PPU_REG_ppu_reg_TEST_DATA5::type_id::create("TEST_DATA5",,get_full_name());
      this.TEST_DATA5.configure(this, null, "");
      this.TEST_DATA5.build();
      this.default_map.add_reg(this.TEST_DATA5, `UVM_REG_ADDR_WIDTH'h8014, "RW", 0);
		this.TEST_DATA5_data = this.TEST_DATA5.data;
      this.TEST_DATA6 = ral_reg_PPU_REG_ppu_reg_TEST_DATA6::type_id::create("TEST_DATA6",,get_full_name());
      this.TEST_DATA6.configure(this, null, "");
      this.TEST_DATA6.build();
      this.default_map.add_reg(this.TEST_DATA6, `UVM_REG_ADDR_WIDTH'h8018, "RW", 0);
		this.TEST_DATA6_data = this.TEST_DATA6.data;
      this.TEST_DATA7 = ral_reg_PPU_REG_ppu_reg_TEST_DATA7::type_id::create("TEST_DATA7",,get_full_name());
      this.TEST_DATA7.configure(this, null, "");
      this.TEST_DATA7.build();
      this.default_map.add_reg(this.TEST_DATA7, `UVM_REG_ADDR_WIDTH'h801C, "RW", 0);
		this.TEST_DATA7_data = this.TEST_DATA7.data;
      this.TEST_DATA8 = ral_reg_PPU_REG_ppu_reg_TEST_DATA8::type_id::create("TEST_DATA8",,get_full_name());
      this.TEST_DATA8.configure(this, null, "");
      this.TEST_DATA8.build();
      this.default_map.add_reg(this.TEST_DATA8, `UVM_REG_ADDR_WIDTH'h8020, "RW", 0);
		this.TEST_DATA8_data = this.TEST_DATA8.data;
      this.TEST_DATA9 = ral_reg_PPU_REG_ppu_reg_TEST_DATA9::type_id::create("TEST_DATA9",,get_full_name());
      this.TEST_DATA9.configure(this, null, "");
      this.TEST_DATA9.build();
      this.default_map.add_reg(this.TEST_DATA9, `UVM_REG_ADDR_WIDTH'h8024, "RW", 0);
		this.TEST_DATA9_data = this.TEST_DATA9.data;
      this.TEST_DATA10 = ral_reg_PPU_REG_ppu_reg_TEST_DATA10::type_id::create("TEST_DATA10",,get_full_name());
      this.TEST_DATA10.configure(this, null, "");
      this.TEST_DATA10.build();
      this.default_map.add_reg(this.TEST_DATA10, `UVM_REG_ADDR_WIDTH'h8028, "RW", 0);
		this.TEST_DATA10_data = this.TEST_DATA10.data;
      this.TEST_DATA11 = ral_reg_PPU_REG_ppu_reg_TEST_DATA11::type_id::create("TEST_DATA11",,get_full_name());
      this.TEST_DATA11.configure(this, null, "");
      this.TEST_DATA11.build();
      this.default_map.add_reg(this.TEST_DATA11, `UVM_REG_ADDR_WIDTH'h802C, "RW", 0);
		this.TEST_DATA11_data = this.TEST_DATA11.data;
      this.TEST_DATA12 = ral_reg_PPU_REG_ppu_reg_TEST_DATA12::type_id::create("TEST_DATA12",,get_full_name());
      this.TEST_DATA12.configure(this, null, "");
      this.TEST_DATA12.build();
      this.default_map.add_reg(this.TEST_DATA12, `UVM_REG_ADDR_WIDTH'h8030, "RW", 0);
		this.TEST_DATA12_data = this.TEST_DATA12.data;
      this.TEST_DATA13 = ral_reg_PPU_REG_ppu_reg_TEST_DATA13::type_id::create("TEST_DATA13",,get_full_name());
      this.TEST_DATA13.configure(this, null, "");
      this.TEST_DATA13.build();
      this.default_map.add_reg(this.TEST_DATA13, `UVM_REG_ADDR_WIDTH'h8034, "RW", 0);
		this.TEST_DATA13_data = this.TEST_DATA13.data;
      this.TEST_DATA14 = ral_reg_PPU_REG_ppu_reg_TEST_DATA14::type_id::create("TEST_DATA14",,get_full_name());
      this.TEST_DATA14.configure(this, null, "");
      this.TEST_DATA14.build();
      this.default_map.add_reg(this.TEST_DATA14, `UVM_REG_ADDR_WIDTH'h8038, "RW", 0);
		this.TEST_DATA14_data = this.TEST_DATA14.data;
      this.TEST_DATA15 = ral_reg_PPU_REG_ppu_reg_TEST_DATA15::type_id::create("TEST_DATA15",,get_full_name());
      this.TEST_DATA15.configure(this, null, "");
      this.TEST_DATA15.build();
      this.default_map.add_reg(this.TEST_DATA15, `UVM_REG_ADDR_WIDTH'h803C, "RW", 0);
		this.TEST_DATA15_data = this.TEST_DATA15.data;
      this.TEST_STATUS = ral_reg_PPU_REG_ppu_reg_TEST_STATUS::type_id::create("TEST_STATUS",,get_full_name());
      this.TEST_STATUS.configure(this, null, "");
      this.TEST_STATUS.build();
      this.default_map.add_reg(this.TEST_STATUS, `UVM_REG_ADDR_WIDTH'h8100, "RO", 0);
		this.TEST_STATUS_status_a = this.TEST_STATUS.status_a;
		this.status_a = this.TEST_STATUS.status_a;
		this.TEST_STATUS_status_b = this.TEST_STATUS.status_b;
		this.status_b = this.TEST_STATUS.status_b;
      this.TEST_ALARM = ral_reg_PPU_REG_ppu_reg_TEST_ALARM::type_id::create("TEST_ALARM",,get_full_name());
      this.TEST_ALARM.configure(this, null, "");
      this.TEST_ALARM.build();
      this.default_map.add_reg(this.TEST_ALARM, `UVM_REG_ADDR_WIDTH'h8200, "RO", 0);
		this.TEST_ALARM_data_err_a = this.TEST_ALARM.data_err_a;
		this.data_err_a = this.TEST_ALARM.data_err_a;
		this.TEST_ALARM_addr_err_a = this.TEST_ALARM.addr_err_a;
		this.addr_err_a = this.TEST_ALARM.addr_err_a;
		this.TEST_ALARM_data_err_b = this.TEST_ALARM.data_err_b;
		this.data_err_b = this.TEST_ALARM.data_err_b;
		this.TEST_ALARM_addr_err_b = this.TEST_ALARM.addr_err_b;
		this.addr_err_b = this.TEST_ALARM.addr_err_b;
   endfunction : build

	`uvm_object_utils(ral_block_PPU_REG_ppu_reg)

endclass : ral_block_PPU_REG_ppu_reg



`endif
